package tr3dtris.game;

/**
 * Interface used to collect all the methods related to the user input actions.
 * @author Luciano Mammino <loige@hotmail.com>
 * @author Andrea Mangano <kapitan0@hotmail.it>
 * @version 0.1
 * @since 0.1
 */
public interface IGameActions
{
    /**
     * Start a new game
     */
    public void start();

    /**
     * Pause the current game
     */
    public void pause();

    /**
     * Restart the game
     */
    public void restart();

    /**
     * Move the current piece down o a cell
     */
    public void moveCurrentPieceDown();

    /**
     * Move the current piece left
     */
    public void moveCurrentPieceLeft();

    /**
     * Move the current piece right
     */
    public void moveCurrentPieceRight();

    /**
     * Move the current piece up
     */
    public void moveCurrentPieceUp();

    /**
     * Rotate clockwise the current piece
     */
    public void cwRotateCurrentPiece();

    /**
     * Rotate counter clockwise the current piece
     */
    public void ccwRotateCurrentPiece();

    /**
     * Drop down the currentPiece
     */
    public void dropCurrentPiece();
}
